# Chapter 4: Server Setup

This chapter describes basic Helix Universal Server setup. These functions include binding to IP addresses, specifying ports, and setting up distributed licenses. You may not need to change any of these settings depending on your system's configuration and the values you chose during installation.

# Defining Communications Ports

After you install Helix Universal Server, you can change the ports used for protocols such as RTSP and HTTP, as well as for features such as Helix Administrator. RealNetworks recommends that, whenever possible, you use the default communications ports, which are "well-known" ports that Web browsers and media players use by default when contacting Helix Universal Server. The following table lists the default ports for the protocols that Helix Universal Server uses.

Recommended Port Numbers
Protocol or Feature | Default Port | Purpose
--- | --- | ---
RTSP | 554 | RTSP-based communication between Helix Universal Server, RealOne Player, and QuickTime Player.
MMS | 1755 | MMS-based communication between Helix Universal Server and Windows Media Player.
HTTP | 80 | HTTP-based communication between Helix Universal Server and Web browsers, as well as media players behind firewalls that necessitate HTTP cloaking.
PNA | 7070 | PNA-based communication between Helix Universal Server and older RealPlayers (primarily RealPlayer 5 and earlier).
Admin | (random) | Communication with Helix Administrator. The value is randomly generated during installation, and is required in the browser URL when connecting to Helix Administrator.
Monitor | 9090 | Communication with the Server Monitor. For more information on this feature, see Chapter 18.

| For More Information: For more information about these protocols, as well as topics such as HTTP cloaking, see Chapter 11.

## Changing Port Assignments

You can easily change ports through Helix Administrator. This requires a Helix Universal Server restart, and if you change the Admin port, you'll also need to log into Helix Administrator again with the new port value.

| To change Helix Universal Server port settings:

1. Click Server Setup>Ports.

2. Change values by entering new numbers for various ports. You can also change global options, described below, that affect how media players use Helix Universal Server ports.

3. Click Apply. If you receive an error message that the port is used for UDP communications, choose another port, or restrict the UDP range as described below.

#### Enable Ramgen Port Hinting URLs

Set to Yes by default, this option instructs Helix Universal Server to add protocol port information to all Web page links that use the `/ramgen/` mount point to launch RealOne Player. RealNetworks recommends that you leave this feature set to Yes. For additional information, see "Handling Communication through Nonstandard Ports".

#### Enable HTTP Fail Over URL for ASXGen

If you set this option to Yes, Helix Universal Server automatically includes an alternate HTTP URL to the streaming content in all Web page links that use the `/asxgen/` mount point. This allows Windows Media Player to request the content through HTTP if MMS communication is blocked.

#### UDP Resend Port Range

Initially blank, this option instructs Helix Universal Server to use the specified range of UDP ports for media player replies. Enter a minimum range of two ports for each CPU on the Helix Universal Server machine. "Helix Universal Server Default Ports" lists the standard UDP port ranges. For background information, see "Working with Firewall Technologies".

## Handling Communication through Nonstandard Ports

If you set the port for a communications protocol such as HTTP, RTSP, or MMS to a nonstandard value, media players may not be able to communicate to Helix Universal Server because they won't know which port to use. When you choose the standard ports, which are set up by default during installation, clients always communicate on the correct ports. If you have set nonstandard ports, you can use port hinting, or add port numbers to URLs.

### Port Hinting for RealOne Player and RealPlayer 8 through Ramgen

Port hinting tells a media player which communications ports are used for various protocols. This works only for RealPlayer 8 and later. If you keep the Enable Ramgen Port Hinting URLs feature at its default value of Yes, hinting occurs automatically when you launch RealOne Player or RealPlayer 8 through a Web page link that uses the Ramgen utility.

| For More Information: For instructions on using Ramgen, see "Using a Client Launch Utility". For background information, see "Streaming to Client Software Behind Firewalls".

### Port Hinting for RealOne Player and RealPlayer 8 through a Ram File

When using a Ram file to launch a presentation for RealPlayer 8 or later, content creators can include port hints with the `cloakport` parameter. The player then attempts to connect to the server using the specified protocol and ports. This is useful if you have multiple Helix Universal Servers that use different ports. Content creators do not then have to know exactly which port is used on each machine. In the following example, RealPlayer attempts to connect through RTSP on port 554. If that doesn't work, it tries RTSP on port 550, and so on. You can specify up to four ports:

    rtsp://helixserver.example.com/video1.rm?cloakport="554 550 1012 9120"

| Note: You'll need to inform content creators about the `cloakport` parameter, which is not discussed in RealNetworks production guides. For more about the Ram file, see "Using Metafiles".

### Port Numbers in URLs

You need to include the specific, nonstandard port number in URLs in cases where port hinting and the `cloakport` parameter don't work. This includes communication with Windows Media Player, QuickTime Player, and RealPlayers earlier than version 8. This also applies to Web page links that use the HTTP protocol. For all protocols, you add the port number after the Helix Universal Server address, separating the two with a colon. For example:

    rtsp://helixserver.example.com:500/video1.rm

| Note: You'll need to alert content creators to the use of nonstandard ports so that they can write hyperlinks correctly. The section "Writing Links to Content" provides more information about Helix Universal Server URLs.

# Binding to an IP Address

When Helix Universal Server starts, it uses the IP address assigned to the first network interface it finds on the computer—network interface 0. In a computer with multiple network interfaces—often referred to as a multi-homed machine—you can configure Helix Universal Server always to use specific IP addresses. Through this feature, you can select individual IP addresses to use, or you can bind to all the IP addresses on the machine.

## Using Localhost

By default, Helix Universal Server binds to the localhost address (also called the loopback address), which enables a simulated network connection from Helix Universal Server to a client installed on the same computer. When using this address, which is useful for testing, no information is sent over the network, but it appears as if the connection came from the network. You can express this address in dotted decimal form as `127.0.0.1`.

## Capturing All Addresses

You can use the IP binding feature to capture all addresses for Helix Universal Server's use. To do this, specify the IP address `0.0.0.0`, and delete all others. Helix Universal Server will automatically bind to all addresses and to localhost. For most installations, RealNetworks recommends binding to all addresses.

## Binding to Specific Addresses

If you bind Helix Universal Server to one or more specific addresses, Helix Universal Server binds only to those address, but not to others. In other words, it will not bind to localhost. To bind to a specific address and to localhost, you must add both to the IP binding list.

## Modifying IP Addresses

You bind Helix Universal Server to IP addresses using Helix Administrator. You'll need to restart Helix Universal Server after making these changes.

| To reserve IP addresses for Helix Universal Server:

1. In Helix Administrator, click Server Setup> IP Binding.

2. Click the "+" icon and type the IP address that you want Helix Universal Server to use into the Edit IP Address box

3. Repeat this procedure for each address on this machine that you want Helix Universal Server to use.

| Warning! Use either `0.0.0.0` or specific addresses, but never both. If you use both, Helix Universal Server will not start.

4. Click Apply.

# Setting UNIX User and Group Names

By default, Helix Universal Server on UNIX uses the user and group names of the person who starts it. After startup, though, it can immediately switch to a different user and group setting. This lets you start Helix Universal Server as `root`, so that it can capture port 554 for RTSP communications, then assume a different user and group identity. The user and group names must be predefined through the operating system, and must have write permission for Helix Universal Server's `Logs` and `Secure` directories.

| To change the group or user names:

1. In Helix Administrator, click Server Setup>User/Group Name.

2. Type the user name or ID number in the User Name or ID box. The default is `%-1`, which means Helix Universal Server uses the name of the user who logged in and started Helix Universal Server.

3. Type the user name or ID number in the Group Name or ID box. The default is `%-1`, which means that Helix Universal Server uses the group name of the user who logged in and started Helix Universal Server.

4. Click Apply.

# Controlling Connections

Helix Universal Server lets you limit the number and types of media client connections made. As well, you can set a limit on the bandwidth that Helix Universal Server uses for streaming. All settings are optional.

| For More Information: For instructions about requiring a user name and password for client connections, see Chapter 13. See also the access control feature described in Chapter 12.

| To limit connections:

1. In Helix Administrator, click Server Setup>Connection Control.

2. In the Maximum Client Connections box, enter an integer to specify the total number of media players that can connect simultaneously. Once this limit is reached, players attempting to connect receive an error message, and will not be able to connect until other players disconnect.

You can specify a number from `1` to `32767`. The value must be less than or equal to the number of streams permitted by your license. If the value is `0` or blank, Helix Universal Server uses the number of streams specified by your license.

3. To stream media only to RealNetworks clients, set the RealPlayers Only pull-down to `On`. Other media players cannot then connect.

4. To stream media only to RealPlayer Plus and RealOne Player, set the RealPlayer Plus Only pull-down to `On`. Other media players, as well as any free versions of RealPlayer that predate RealOne Player, cannot then connect.

5. For Maximum Bandwidth, you can enter a number in Kilobits per second (Kbps). Helix Universal Server refuses additional media player connections once this bandwidth limit is exceeded.

| Tip: Your Helix Universal Server license may allow more bandwidth than is suitable for your network. Check with your network administrator to determine the right number to use.

6. Click Apply.

# Configuring HTTP Communications

Although not intended to be used as a Web server, Helix Universal Server can serve any content over HTTP. The following sections cover configuration options for extending HTTP delivery to specific content paths, and for defining MIME types. You generally do not need to change these settings unless you intend to use Helix Universal Server for Web serving functions.

## Allowing HTTP Delivery

By default, Helix Universal Server restricts HTTP delivery to defined directories. This protects streaming media content from HTTP downloading, which may place copies of downloaded clips in Web browser caches. To serve content in a new location over HTTP, you specify which mount points allow HTTP requests. The following mount points (and the subdirectories of their base paths) are preconfigured to allow HTTP delivery.

Mount Points that Allow HTTP Requests
Mount Point | Function
--- | ---
`/admin` | Delivering Helix Administrator pages. See "Starting Helix Administrator".
`/ramgen` | Taking RealMedia requests from browsers. See "Using a Client Launch Utility".
`/httpfs` | Delivering any media or HTML page through HTTP.
`/viewsource` | Sending HTML pages that list source information and markup. See "Displaying Source Information".
`/encfs` | Negotiating port settings between Helix Universal Server and Helix Producer.
`/asxgen` | Taking Windows Media requests from browsers. See "Using a Client Launch Utility".
`/nscfile` | Launching Windows Media multicasts. See "Defining a Multicast Channel".
`/scalable` | Taking scalable multicast requests from browsers. This is added automatically when you set up multicasting. See "Linking to a Scalable Multicast".

| Note: You generally do not need to change the settings of the preconfigured mount points. For general information about mount points, see "Mount Points".

| To allow HTTP delivery for a mount point:

1. Define the mount point as described in "Adding a Mount Point for On-Demand Clips". Subdirectories beneath the mount point's base path must not contain secure material. If they do, users will not be prompted for their name and password.

2. Click Server Setup> HTTP Delivery.

3. Click the "+" icon to add a new path.

4. Change the name in the Edit Path box to that of the mount point you created. Include only the initial forward slash, as in `/htmlpages`.

5. Click Apply.

## Adding MIME Types for HTTP Communication

Because Helix Universal Server acts as a Web server for certain features, it has its own MIME types section. You can modify Helix Universal Server's list of MIME types if you plan to deliver over HTTP a data type not listed in the following table.

Helix Universal Server MIME Types and Extensions
MIME Type | Extension
--- | ---
`audio/x-pn-realaudio` | `ram`
`image/gif` | `gif`
`image/jpg` | `jpg, jpeg`
`text/html` | `html, htm`
`text/plain` | `txt`
`video/quicktime` | `mov`

| To add a MIME type for HTTP serving:

1. Click Server Setup>MIME Types in Helix Administrator.

2. Click the "+" icon to add a new MIME type.

3. Enter the MIME type in the Edit MIME Type box.

4. Enter a file extension, or a list of comma-separated extensions, in the Extensions box. Do not precede file extensions with a period.

5. Click Apply.

# Distributing Server Licenses

Using distributed licensing, multiple Helix Universal Servers can use a single license, sharing a pool of streams that use specific features. Both the authentication and ad streaming features can use this feature, for example. The Helix Universal Servers that share a license are called a license group. Clients are not denied service unless the entire pool of connections in the license group is in use.

When you use distributed licensing, you place the main license file on a main Helix Universal Server, called the publisher, then configure additional Helix Universal Servers as subscribers. The subscribers look to a primary publisher for licensing information. If the primary publisher is not available, or has too few connections available for use, subscribers can use a secondary publisher.

Each Helix Universal Server, whether a publisher or a subscriber, maintains its own configuration file that you can edit independently, either manually or through Helix Administrator. The features available to each subscriber depend on the features permitted by the shared license, but you can modify each Helix Universal Server's configuration file independently.

| Note: Within a given network or organization, you can have multiple groups, but you should not use this feature outside of a network or across a firewall.

## Setting Up Publishers

Carry out the procedure below to define each publisher in you license group. You need to know the IP address and Helix Administrator port used on each publisher you set up. Repeat this procedure on each Helix Universal Server that acts as a publisher.

| To set up a publisher:

1. In Helix Administrator, click Server Setup>Ports and note the value for Admin Port.

2. Click Server Setup> Shared Licensing and define all license publishers for this group, including the current Helix Universal Server:

1. In the License Publishers section, click the "+" icon and enter the publisher's IP address in the Edit Publisher IP Address box.

2. In the Admin Port box, enter the value of the publisher's Admin port.

3. Repeat this step to define each additional publisher in the license group.

3. List the subscribers that share this Helix Universal Server's license:

1. In the License Subscriber section, click the "+" icon and enter a descriptive name in the Edit Subscriber box to distinguish this subscriber from others.

2. In the Subscriber Address box, type the subscriber's IP address. To indicate a range of addresses, select a bit mask from the Subscriber Netmask list. For more information about bit masks, see Appendix B.

3. Repeat this step for each subscriber not covered by another subscriber definition's netmask.

4. Click Apply.

## Setting Up Subscribers

Follow the procedure below to set up each subscriber. You'll need to know the values for each publisher's IP address and Helix Administrator port. Carry out this procedure on each Helix Universal Server that acts as a subscriber.

| To set up a subscriber:

1. In Helix Administrator, click Server Setup> Shared Licensing

2. In the License Publishers area, click the "+" icon and type the IP address of the license publisher host in the Edit Publisher IP Address box. The subscriber uses the first publisher in the list as its primary publisher, referring to the other publishers in order if the primary publisher is not available, or all of its licensed client connections are in use.

3. In the Admin Port box, type the value of the publisher's Admin port.

4. Repeat these steps for each publisher in the license group.

5. Click Apply.

## Starting and Monitoring a License Group

After you have configured both publishers and subscribers, restart the publishers, then restart the subscribers. This activates distributed licensing, allowing Helix Universal Servers to pool their stream count and feature availability.

On the publisher, you can use a license group monitor to view the number of connections currently used by the subscribers. In the publisher's Helix Administrator, click Logging & Monitoring> License Monitor. The License Monitor page appears, showing the number of publishers, subscribers, and connections currently in use.

| © 2002 RealNetworks, Inc. All rights reserved. For more information, visit RealNetworks Click here if the Table of Contents frame is not visible at the left side of your screen.